package cm.cool.system.polling;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import cm.cool.system.bean.PriceDto;
import cm.cool.web.bean.Notice;
import cm.cool.web.bean.Wallet;
import cm.cool.web.service.notice.NoticeService;
import cm.cool.web.service.price.PriceService;
import cm.cool.web.service.wallet.WalletService;

@Component
public class CoinNoPolling {
	
	
	@Autowired
	WalletService walletService;
	
	@Autowired
	NoticeService noticeService;
	
	@Autowired
	PriceService priceService;
	
	
	SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
	
	/**
	 * 定时轮询货币预警
	 */
	@Scheduled(fixedRate = 3600000)
	public void coinPolling(){
		Wallet wallet=new Wallet();
		wallet.setCoinNo("0");
		long count=walletService.selectBzCount(wallet);
		System.out.println("=============================================================================");
		System.out.println("=============================================================================");
		System.out.println("=============================================================================");
		System.out.println("=============================   轮询预警启动       ====================================");
		System.out.println("================  当前总数量为:"+count+"   预警数量为 :"+ PriceDto.getPriceDto().getTotalCurrency()+"   ==========");
		System.out.println("=============================================================================");
		System.out.println("=============================================================================");
		System.out.println("==========================当前时间："+sdf.format(new Date())+"==========================");
		try {
			if(count>=Integer.parseInt(PriceDto.getPriceDto().getTotalCurrency())){
				System.out.println("================  达到警告值,正在推送消息  ==========");
				Notice notice=new Notice();
				notice.setId(UUID.randomUUID().toString());
				notice.setErrtext("当前总数量为:"+count+"   预警数量为 :"+ PriceDto.getPriceDto().getTotalCurrency());
				notice.setUrrencyId("0");
				noticeService.insertNotice(notice);
			}	
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	
	/**
	 * 定时更新货币信息
	 */
	@Scheduled(fixedRate = 1800000)
	public void updatePrice(){
		
		System.out.println("=============================================================================");
		System.out.println("=============================================================================");
		System.out.println("=============================================================================");
		System.out.println("=========================   定时查询币种信息 启动   ===================================");
		System.out.println("=============================================================================");
		System.out.println("=============================================================================");
		System.out.println("=========================当前时间："+sdf.format(new Date())+"=====================");
		
		try {
			priceService.updatePrice();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	
}
